function changeValidateCode(obj) {
	var currentTime = new Date().getTime();
	obj.src = "rand_genCode.do?d=" + currentTime;
}

var checkCode = {
	layout : 'column',
	items : [{
		columnWidth : .8,
		layout : 'form',
		items : [{
					xtype : 'textfield',
					fieldLabel : ' 验证码 ',
					name : 'validateCode',
					anchor : '95%',
					allowBlank : false,
					blankText : '验证码不能为空',
					listeners : {
						'blur' : function(comp) {
							Ext.Ajax.request({
										url : 'rand_isCodeValid.do',
										params : {
											'code' : comp.getValue()
										},
										success : function(response, opts) {
											var rp = Ext
													.decode(response.responseText);
											if (rp.success == false) {

												// 根据ajax请求返回的数据信息手动的进行设置该字段无效
												// on
												// 表示用户名已被使用，字段无效，显示错误提示信息
												comp.markInvalid("验证码错误!");
											}
										},
										scope : this
									});
						}

					}
				}]
	}, {
		columnWidth : .2,
		layout : 'form',
		items : [{
			html : '<img style="cursor:hand;" alt="看不清，换一张" onclick="changeValidateCode(this)"  height="25" width="60" src="rand_genCode.do?d=" '
					+ new Date().getTime() + ' border=0></img>',
			border : false
		}]
	}]
};

/*
 * // 定义验证码控件 Ext.define('CheckCode', { extend : 'Ext.form.field.Text', alias :
 * 'widget.checkcode', inputTyle : 'codefield', codeUrl : Ext.BLANK_IMAGE_URL,
 * isLoader : true, onRender : function(ct, position) {
 * this.callParent(arguments); this.codeEl = ct.createChild({ tag : 'img', src :
 * Ext.BLANK_IMAGE_URL }); this.codeEl.addCls('x-form-code');
 * this.codeEl.on('click', this.loadCodeImg, this);
 * 
 * if (this.isLoader) this.loadCodeImg(); }, alignErrorIcon : function() {
 * this.errorIcon.alignTo(this.codeEl, 'tl-tr', [2, 0]); }, //
 * 如果浏览器发现url不变，就认为图片没有改变，就会使用缓存中的图片，而不是重新向服务器请求，所以需要加一个参数，改变url loadCodeImg :
 * function() { this.codeEl.set({ src : this.codeUrl + '?id=' + Math.random()
 * }); } });
 */

var registForm = new Ext.FormPanel({
			url : 'user_regist.do',
			frame : true,
			autoheight : true,
			autoWidth : true,
			bodyStyle : 'padding-top:20px',
			labelAlign : 'right',
			labelPad : 0,

			items : [{
				xtype : 'textfield',
				fieldLabel : '用户名 ',
				name : 'user.userName',
				width : 180,
				allowBlank : false,
				blankText : '用户名不能为空',
				minLength : 4,
				minLengthText : '用户名的长度为[4-20]',
				maxLength : 20,
				maxLengthText : '用户名的长度为[4-20]',
				regex : /^[a-zA-Z\d\u4e00-\u9fa5]*$/,
				regexText : '4-20位小写字母、数字或汉字（汉字算两位）组成',
				listeners : {
					'blur' : function(comp) {
						Ext.Ajax.request({
									url : 'user_userNameExist.do',
									params : {
										'user.userName' : comp.getValue()
									},
									success : function(response, opts) {
										var rp = Ext
												.decode(response.responseText);
										if (rp.success == false) {

											// 根据ajax请求返回的数据信息手动的进行设置该字段无效 on
											// 表示用户名已被使用，字段无效，显示错误提示信息
											comp.markInvalid(rp.message);
										}
									},
									scope : this
								});
					}
				}
			}, {
				xtype : 'textfield',
				inputType : 'password',
				fieldLabel : '密   码',
				name : 'user.password',
				id : 'regist_password',
				width : 180,
				allowBlank : false,
				blankText : '密码不能为空',
				minLength : 6,
				minLengthText : '密码的长度为[6-20]',
				maxLength : 20,
				maxLengthText : '密码的长度为[6-20]'
			}, {
				xtype : 'textfield',
				inputType : 'password',
				fieldLabel : '确认密码',
				name : 'user.passwordReTyping',
				width : 180,
				allowBlank : false,
				blankText : '确认密码不能为空',
				minLength : 6,
				minLengthText : '密码的长度为[6-20]',
				maxLength : 20,
				maxLengthText : '密码的长度为[6-20]',
				listeners : {
					'blur' : function(cmp) {
						// Save the fields we are going to insert values
						// into
						var pass1 = Ext.getCmp('regist_password').getValue();
						if (pass1 != cmp.getValue()) {
							cmp.markInvalid("两次输入的密码不一致!");
						}
					}
				}
			}, {
				xtype : 'textfield',
				fieldLabel : '单位名称或姓名',
				name : 'user.companyName',
				width : 180,
				allowBlank : false,
				blankText : '请填写公司全称或个人姓名，否则将不能通过审核',
				maxLength : 50,
				maxLengthText : '长度不能超过50个字符',
				listeners : {
					'blur' : function(comp) {
						Ext.Ajax.request({
									url : 'user_nameExist.do',
									params : {
										'user.companyName' : comp.getValue()
									},
									success : function(response, opts) {
										var rp = Ext
												.decode(response.responseText);
										if (rp.success == false) {

											// 根据ajax请求返回的数据信息手动的进行设置该字段无效 on
											// 表示用户名已被使用，字段无效，显示错误提示信息
											comp.markInvalid(rp.message);
										}
									},
									scope : this
								});
					}
				}

			}, {
				xtype : 'combo',
				fieldLabel : '证件类型 ',
				hiddenName : 'user.IDType',
				triggerAction : "all",
				width : 180,
				allowBlank : false,
				editable : false,
				blankText : '证件类型不能为空',
				store : idTypeStore,
				displayField : "text",
				valueField : 'value',
				mode : 'local'

			}, {
				xtype : 'textfield',
				fieldLabel : '证件号码 ',
				name : 'user.IDNumber',
				allowBlank : false,
				blankText : '请填写相应证件号码',
				width : 180,
				maxLength : 50,
				maxLengthText : '证件号码的长度不超过50个字符'

			}, /*
				 * { xtype : 'combo', fieldLabel : ' 国家 ', hiddenName :
				 * 'user.country', triggerAction : "all", value : '', width :
				 * 180, store : countryStore, emptyText : '请选择国家...', mode :
				 * 'local' }, { xtype : 'combo', fieldLabel : ' 省份 ', hiddenName :
				 * 'user.province', triggerAction : "all", width : 180, value :
				 * '', store : provinceStore, emptyText : '请选择省份...', mode :
				 * 'local' }, { xtype : 'textfield', fieldLabel : ' 城市 ', name :
				 * 'user.city', width : 180, maxLength : 50, maxLengthText :
				 * '长度不超过50个字符' },
				 */{
				xtype : 'textfield',
				fieldLabel : '详细地址 ',
				name : 'user.detailAddress',
				blankText : '请填写详细通信地址',
				allowBlank : false,
				width : 180,
				maxLength : 100,
				maxLengthText : '长度不超过100个字符'

			}, {
				xtype : 'textfield',
				fieldLabel : '邮政编码 ',
				name : 'user.postalcode',
				blankText : '邮政编码不能为空',
				allowBlank : false,
				width : 180,
				maxLength : 20,
				maxLengthText : '长度不超过20个字符'

			}, {
				xtype : 'textfield',
				fieldLabel : '联系人 ',
				name : 'user.contact',
				blankText : '联系人不能为空',
				allowBlank : false,
				width : 180,
				maxLength : 50,
				maxLengthText : '长度不超过50个字符'

			}, {
				xtype : 'textfield',
				fieldLabel : '电话号码 ',
				name : 'user.contactNumber',
				blankText : '请按格式填写：027-88888888',
				allowBlank : false,
				width : 180,
				maxLength : 50,
				regex :  /^((0[1-9]{3})?(0[12][0-9])?[-])?\d{6,8}$/,
				regexText : '请输入正确的电话号码,如:0920-29392929',
				maxLengthText : '长度不超过50个字符'

			}, {
				xtype : 'textfield',
				fieldLabel : '手机号码 ',
				name : 'user.phoneNumber',
				blankText : '手机号码不能为空',
				allowBlank : false,
				regex : /(^0?[1][0-9][0-9]{9}$)/,
				regexText : '请输入正确的手机号码,如:(0)13888888888',
				width : 180,
				maxLength : 50,
				maxLengthText : '长度不超过50个字符'

			}, {
				xtype : 'textfield',
				fieldLabel : '传真 ',
				name : 'user.fax',
				width : 180,
				maxLength : 50,
				maxLengthText : '长度不超过50个字符'

			}, {
				xtype : 'textfield',
				fieldLabel : ' E-mail ',
				allowBlank : false,
				blankText : '请填写常用联系邮箱，以免无法接收到邮件',
				name : 'user.email',
				regex : /^[a-zA-Z0-9_+.-]+\@([a-zA-Z0-9-]+\.)+[a-zA-Z0-9]{2,4}$/,
				regexText : '请输入正确的传真,如:example@sina.com',
				width : 180,
				maxLength : 50,
				maxLengthText : '长度不超过50个字符'

			},checkCode],
			buttons : [{
				text : '注册',
				type : 'button',
				handler : function() {
					if (!registForm.getForm().isValid())
						return;

					Ext.Ajax.request({
								url : 'user_regist.do',
								params : registForm.getForm().getValues(),
								success : function(response) {
									var resp = Ext
											.decode(response.responseText);
									if (resp.success == true) {
										Ext.Msg.alert('提示', '注册成功,请与协会工作人员联系对注册账号进行审核!',function(){
											location.reload();
										});
										registForm.getForm().reset();
										
									} else {
										Ext.Msg.alert('错误', resp.message);
									}
								},
								scope : this
							});

				}
			}, {
				text : '重置',
				type : 'button',
				handler : function() {
					registForm.getForm().reset();

				}
			}, {
				text : '返回登陆',
				type : 'button',
				handler : function() {
					registWindow.hide();
					loginWindow.show();
				}
			}]
		});

var loginForm = new Ext.FormPanel({
			standardSubmit : false,
			url : 'user_login.do',
			bodyStyle : 'padding-top:20px',
			labelAlign : 'right',
			frame : true,
			autoheight : true,
			autoWidth : true,
			labelPad : 0,
			items : [{
						xtype : 'textfield',
						fieldLabel : ' 用户名 ',
						name : 'user.userName',
						width : 180,

						allowBlank : false,
						blankText : '用户名不能为空',
						minLength : 4,
						minLengthText : '用户名的长度为[4-20]',
						maxLength : 20,
						maxLengthText : '用户名的长度为[4-20]'

					}, {
						xtype : 'textfield',
						inputType : 'password',
						fieldLabel : '密 &nbsp; &nbsp;码',
						name : 'user.password',
						width : 180,

						allowBlank : false,
						blankText : '密码不能为空',
						minLength : 6,
						minLengthText : '密码的长度为[6-20]',
						maxLength : 20,
						maxLengthText : '密码的长度为[6-20]'
					}, checkCode],
			buttons : [{
				text : '登录',
				type : 'button',
				handler : function() {
					if (!loginForm.getForm().isValid())
						return;

					Ext.Ajax.request({
								url : 'user_login.do',
								params : loginForm.getForm().getValues(),
								success : function(response) {
									var resp = Ext
											.decode(response.responseText);
									if (resp.success == true) {
										loginForm.getForm().reset();
										location.reload();

									} else {
										Ext.Msg.alert('错误', resp.message);
									}
								},
								scope : this
							});

				}
			}, {
				text : '注册',
				type : 'button',
				handler : function() {
					registWindow.show();
					loginWindow.hide();

				}
			}]

		});

var loginWindow = new Ext.Window({
			title : '用户登录',
			width : 450,
			height : 200,
			collapsible : true,
			resizable : false,
			closable : false,
			shadowOffset : 10,
			minWidth : 300,
			shadow : true,
			minHeight : 200,
			layout : 'fit',
			plain : true,
			bodyStyle : 'padding:5px;',
			buttonAlign : 'center',
			items : loginForm
		});

var registWindow = new Ext.Window({
			title : '用户注册',
			width : 450,
			height : 500,
			collapsible : true,
			shadowOffset : 10,
			resizable : false,
			closable : false,
			shadow : true,
			minWidth : 300,
			minHeight : 200,
			layout : 'fit',
			plain : true,
			bodyStyle : 'padding:5px;',
			buttonAlign : 'center',
			items : registForm
		});
